package com.pai4j.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

/**
 * 待审核类型枚举
 * 统一管理所有需要审核的业务类型
 */
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum PendingApprovalTypeEnum {

    /**
     * 好友申请
     */
    FRIEND_REQUEST(1, "好友申请", "pai4j_account_relation"),
    
    /**
     * 加群申请
     */
    GROUP_JOIN_REQUEST(2, "加群申请", "pai4j_group_join_application"),
    
    /**
     * 群邀请（预留）
     */
    GROUP_INVITATION(3, "群邀请", "pai4j_group_invitation"),
    
    /**
     * 其他待审核类型（预留，方便后续扩展）
     */
    // SUBJECT_APPROVAL(4, "专题审核", "pai4j_subject_approval"),
    // CONTENT_APPROVAL(5, "内容审核", "pai4j_content_approval"),
    ;

    /**
     * 类型代码
     */
    private Integer type;
    
    /**
     * 类型名称
     */
    private String typeName;
    
    /**
     * 原始业务表名（用于业务数据同步）
     */
    private String bizTableName;

    /**
     * 根据类型代码获取枚举
     */
    public static PendingApprovalTypeEnum getByType(Integer type) {
        if (type == null) {
            return null;
        }
        for (PendingApprovalTypeEnum typeEnum : values()) {
            if (typeEnum.getType().equals(type)) {
                return typeEnum;
            }
        }
        return null;
    }

    /**
     * 判断是否为好友申请
     */
    public static boolean isFriendRequest(Integer type) {
        return FRIEND_REQUEST.getType().equals(type);
    }

    /**
     * 判断是否为加群申请
     */
    public static boolean isGroupJoinRequest(Integer type) {
        return GROUP_JOIN_REQUEST.getType().equals(type);
    }
}
